﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL;

namespace BLL
{
    public class NhomQuyenManager
    {
        public static ActionResultAsList<NhomQuyen> LayDanhSachNhomQuyen()
        {
            var aResult = new ActionResultAsList<NhomQuyen>();
            try
            {
                aResult.Result = NhomQuyenProvider.LayDanhSachNhomQuyen();
            }
            catch (Exception ex)
            {
                aResult.Exceptions.Add(ex);
            }
            return aResult;
        }

        public static ActionResult<NhomQuyen> LayNhomQuyen(int maNhom)
        {
            var aResult = new ActionResult<NhomQuyen>();
            try
            {
                aResult.Result = NhomQuyenProvider.LayNhomQuyen(maNhom);
            }
            catch (Exception ex)
            {
                aResult.Exceptions.Add(ex);
            }
            return aResult;
        }

        public static ActionResult<bool> XoaNhomQuyen(int maNhomQuyen)
        {
            var aResult = new ActionResult<bool>();
            try
            {
                aResult.Result = NhomQuyenProvider.XoaNhomQuyen(maNhomQuyen);
                if (!aResult.Result)
                {
                    aResult.Exceptions.Add(new Exception("Xóa thông tin nhóm quyền không thành công"));
                }
            }
            catch (Exception ex)
            {
                aResult.Exceptions.Add(ex);
            }
            return aResult;
        }

        public static ActionResult<bool> CapNhatNhomQuyen(NhomQuyen nhomQuyen)
        {
            var aResult = new ActionResult<bool>();
            try
            {
                aResult.Result = NhomQuyenProvider.CapNhatNhomQuyen(nhomQuyen);
                if (!aResult.Result)
                {
                    aResult.Exceptions.Add(new Exception("Cập nhật nhóm quyền không thành công"));
                }
            }
            catch (Exception ex)
            {
                aResult.Exceptions.Add(ex);
            }
            return aResult;
        }

        public static ActionResult<int> ThemNhomQuyen(NhomQuyen nhomQuyen)
        {
            var aResult = new ActionResult<int>();
            try
            {
                aResult.Result = NhomQuyenProvider.ThemNhomQuyen(nhomQuyen);
                if (aResult.Result <= 0)
                {
                    aResult.Exceptions.Add(new Exception("Thêm mới nhóm quyền không thành công"));
                }
            }
            catch (Exception ex)
            {
                aResult.Exceptions.Add(ex);
            }
            return aResult;
        }
    }
}
